package com.cxf.windex.entity;

import com.vdurmont.emoji.EmojiParser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

@ApiModel(description = "用户信息")
@Table(name = "js_user")
public class JsUser {

    public JsUser(){

    }

    public JsUser(String username){
        this.setUsername(username);
    }
    /**
     * ID
     */
    @Id
    private String id;

    /**
     * 用户名
     */
    @ApiModelProperty(value = "用户名", required = true)
    private String username;

    /**
     * 密码
     */
    private String password;

    /**
     * 姓名
     */
    @ApiModelProperty(value = "昵称", required = true)
    private String name;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 手机
     */
    @ApiModelProperty(value = "手机", required = true)
    private String mobile;

    /**
     * 邮件
     */
    private String email;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private String sex;

    /**
     * 类型
     */
    private String type;

    /**
     * 状态
     */
    private String status;

    /**
     * 描述
     */
    private String description;

    /**
     * 创建时间
     */
    @Column(name = "crt_time")
    private Date crtTime;

    /**
     * 创建用户id
     */
    @Column(name = "crt_user")
    private String crtUser;

    /**
     * 创建用户姓名
     */
    @Column(name = "crt_name")
    private String crtName;

    /**
     * 创建用户IP
     */
    @Column(name = "crt_host")
    private String crtHost;

    /**
     * 更新时间
     */
    @Column(name = "upd_time")
    private Date updTime;

    /**
     * 更新用户id
     */
    @Column(name = "upd_user")
    private String updUser;

    /**
     * 更新用户姓名
     */
    @Column(name = "upd_name")
    private String updName;

    /**
     * 更新用户IP
     */
    @Column(name = "upd_host")
    private String updHost;

    @Column(name = "del_flg")
    private Integer delFlg;

    /**
     * 微信OPenId
     */
    @ApiModelProperty(value = "openid", required = true)
    private String openid;

    @Transient
    private String  inviter;

    /**
     * 获取ID
     *
     * @return id - ID
     */
    public String getId() {
        return id;
    }

    /**
     * 设置ID
     *
     * @param id ID
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取用户名
     *
     * @return username - 用户名
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置用户名
     *
     * @param username 用户名
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取密码
     *
     * @return password - 密码
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置密码
     *
     * @param password 密码
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取姓名
     *
     * @return name - 姓名
     */
    public String getName() {
      return name;
    }

    /**
     * 设置姓名
     *
     * @param name 姓名
     */
    public void setName(String name) {

        name = EmojiParser.parseToAliases(name);
        this.name = EmojiParser.parseToUnicode(name);

    }

    /**
     * 获取生日
     *
     * @return birthday - 生日
     */
    public String getBirthday() {
        return birthday;
    }

    /**
     * 设置生日
     *
     * @param birthday 生日
     */
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    /**
     * 获取手机
     *
     * @return mobile - 手机
     */
    public String getMobile() {
        return mobile;
    }

    /**
     * 设置手机
     *
     * @param mobile 手机
     */
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    /**
     * 获取邮件
     *
     * @return email - 邮件
     */
    public String getEmail() {
        return email;
    }

    /**
     * 设置邮件
     *
     * @param email 邮件
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * 获取性别
     *
     * @return sex - 性别
     */
    public String getSex() {
        return sex;
    }

    /**
     * 设置性别
     *
     * @param sex 性别
     */
    public void setSex(String sex) {
        this.sex = sex;
    }

    /**
     * 获取类型
     *
     * @return type - 类型
     */
    public String getType() {
        return type;
    }

    /**
     * 设置类型
     *
     * @param type 类型
     */
    public void setType(String type) {
        this.type = type;
    }

    /**
     * 获取状态
     *
     * @return status - 状态
     */
    public String getStatus() {
        return status;
    }

    /**
     * 设置状态
     *
     * @param status 状态
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 获取描述
     *
     * @return description - 描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置描述
     *
     * @param description 描述
     */
    public void setDescription(String description) {
        this.description = description;
    }

    /**
     * 获取创建时间
     *
     * @return crt_time - 创建时间
     */
    public Date getCrtTime() {
        return crtTime;
    }

    /**
     * 设置创建时间
     *
     * @param crtTime 创建时间
     */
    public void setCrtTime(Date crtTime) {
        this.crtTime = crtTime;
    }

    /**
     * 获取创建用户id
     *
     * @return crt_user - 创建用户id
     */
    public String getCrtUser() {
        return crtUser;
    }

    /**
     * 设置创建用户id
     *
     * @param crtUser 创建用户id
     */
    public void setCrtUser(String crtUser) {
        this.crtUser = crtUser;
    }

    /**
     * 获取创建用户姓名
     *
     * @return crt_name - 创建用户姓名
     */
    public String getCrtName() {
        return crtName;
    }

    /**
     * 设置创建用户姓名
     *
     * @param crtName 创建用户姓名
     */
    public void setCrtName(String crtName) {
        this.crtName = crtName;
    }

    /**
     * 获取创建用户IP
     *
     * @return crt_host - 创建用户IP
     */
    public String getCrtHost() {
        return crtHost;
    }

    /**
     * 设置创建用户IP
     *
     * @param crtHost 创建用户IP
     */
    public void setCrtHost(String crtHost) {
        this.crtHost = crtHost;
    }

    /**
     * 获取更新时间
     *
     * @return upd_time - 更新时间
     */
    public Date getUpdTime() {
        return updTime;
    }

    /**
     * 设置更新时间
     *
     * @param updTime 更新时间
     */
    public void setUpdTime(Date updTime) {
        this.updTime = updTime;
    }

    /**
     * 获取更新用户id
     *
     * @return upd_user - 更新用户id
     */
    public String getUpdUser() {
        return updUser;
    }

    /**
     * 设置更新用户id
     *
     * @param updUser 更新用户id
     */
    public void setUpdUser(String updUser) {
        this.updUser = updUser;
    }

    /**
     * 获取更新用户姓名
     *
     * @return upd_name - 更新用户姓名
     */
    public String getUpdName() {
        return updName;
    }

    /**
     * 设置更新用户姓名
     *
     * @param updName 更新用户姓名
     */
    public void setUpdName(String updName) {
        this.updName = updName;
    }

    /**
     * 获取更新用户IP
     *
     * @return upd_host - 更新用户IP
     */
    public String getUpdHost() {
        return updHost;
    }

    /**
     * 设置更新用户IP
     *
     * @param updHost 更新用户IP
     */
    public void setUpdHost(String updHost) {
        this.updHost = updHost;
    }

    /**
     * @return del_flg
     */
    public Integer getDelFlg() {
        return delFlg;
    }

    /**
     * @param delFlg
     */
    public void setDelFlg(Integer delFlg) {
        this.delFlg = delFlg;
    }

    /**
     * 获取微信OPenId
     *
     * @return wxopenid - 微信OPenId
     */
    public String getOpenid() {
        return openid;
    }

    /**
     * 设置微信OPenId
     *
     * @param openid 微信OPenId
     */
    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getInviter() {
        return inviter;
    }

    public void setInviter(String inviter) {
        this.inviter = inviter;
    }
}
